
<html><HEAD>
<LINK REL=STYLESHEET HREF="default.css" TYPE="text/css">
<TITLE>
ORA driver support for Oracle 11g features</TITLE>
</HEAD>
<BODY>

<!-- Header -->
<p class="ancestor" align="right"><A HREF="connpbp71.htm">Previous</A>&nbsp;&nbsp;<A HREF="connpbp73.htm" >Next</A>
<!-- End Header -->
<A NAME="TI1512"></A><h1>ORA driver support for Oracle 11g features</h1>
<A NAME="TI1513"></A><p>In addition to support for Oracle 11<i>g</i> session
pooling and connection pooling, the ORA driver adds support for
other 11<i>g</i> features.</p>
<A NAME="TI1514"></A><h4>Client result cache</h4>
<A NAME="TI1515"></A><p>The PowerBuilder ORA driver supports Oracle Client Cache,
however this feature depends on your Oracle Server and Client configuration.
You can configure the Oracle Client Cache with an <i>init.ora</i> or <i>sqlnet.ora</i> file.
Cached queries are annotated with "<FONT FACE="Courier New">/*+ result_cache */</FONT>" hints
to indicate that results are stored in the query result cache. You
enable OCI statement caching from PowerBuilder applications with
the StatementCache DBPARM parameter.</p>
<A NAME="TI1516"></A><h4>Application driver name</h4>
<A NAME="TI1517"></A><p>An OCI application can choose its own name and set it as a
diagnostic aid. The AppDriverName DPBARM parameter allows you to
set your own client driver name for the PowerBuilder ORA interface.
The maximum length of the name is 8 characters. You can display
the client driver name with the V$SESSION_CONNECT_INFO
or GV$SESSION_CONNECT_INFO dynamic performance
view queries.</p>
<A NAME="TI1518"></A><h4>Client access through a proxy (Oracle 10.2 feature)</h4>
<A NAME="TI1519"></A><p>The PowerBuilder ORA driver supports the proxy authentication
feature that was introduced in Oracle 10.2. With proxy authentication,
the end user typically authenticates to a middle tier (such as a
firewall), that in turn logs into the database on the user's
behalf&#8212;as a proxy user. After logging into the database,
the proxy user can switch to the end user's identity and
perform operations using the authorization accorded to that user.</p>
<A NAME="TI1520"></A><p>The ConnectAs DBParm parameter allows you to take advantage
of this proxy connection feature. For example, if the user's
Transaction object LogID is "Scott" and you set
the ConnectAs DBParm parameter to "John", the
OCI client logs in to database as the proxy user ("Scott"),
then switches to the end user identity ("John"). </p>
<A NAME="TI1521"></A><p>If you are using connection or session pooling, the proxy
user name is the connection or session pooling creator (which you
can provide in the PoolCreator and PoolPwd DBParm parameters), and
the Transaction object's LogID is ignored. No proxy session
can be created if pooling is set to HomogeneousSession mode.</p>
<br><img src="images/note.gif" width=17 height=17 border=0 align="bottom" alt="Note"> <span class=shaded>Limitation on proxy connection without pooling</span> <A NAME="TI1522"></A>When using a proxy connection without pooling, you must set
the NLS_Charset DBPARM to "Local" or
to another non-Unicode character set. If you do not change the "Unicode" default
value for this DBPARM, the connection fails because the Oracle Client
Interface does not accept a Unicode name string for its proxy client
attribute. 
<br>
<A NAME="TI1523"></A><h4>Load balancing</h4>
<A NAME="TI1524"></A><p>The Oracle Real Application Clusters (RAC) database option
allows a single database to be hosted in multiple instances on multiple
nodes of the database server. This adds high availability and failover
capacity to the database. Availability is improved since, if one
node fails, another node can assume its workload. All instances
have access to the whole database. The shared disk method of clustering
databases used by the RAC option increases scalability because nodes
can be added or freed as required.</p>
<A NAME="TI1525"></A><p>In RAC environments, session pools can use service metrics
received from the RAC load balancing advisory to balance application
session requests. The work requests coming into the session pool
can then be distributed across the instances of RAC based on current
service performance.</p>
<p><b>Connect time load balancing</b>   Balancing of work requests occur at two different times: connect
time and runtime. Connect time load balancing occurs when a session
is first created by the application. This ensures that sessions
that are part of the pool are well distributed across RAC instances,
and that sessions on each of the instances get a chance to execute
work. </p>
<A NAME="TI1526"></A><p>For session pools that support services at one instance only,
the first available session in the pool is adequate. When the pool
supports services that span multiple instances, there is a need
to distribute the work requests across instances so that the instances
that are providing better service or have greater capacity get more
requests. </p>
<p><b>Runtime connection load balancing</b>   Runtime connection load balancing basically routs work requests
to the sessions in a session pool that best serve the work. Runtime
connection load balancing is enabled by default when an Oracle 11.1
or higher client is connected to a 10.2 or higher Oracle server
using OCI session pooling. </p>
<A NAME="TI1527"></A><p>The DBPARM parameter, RTConnBalancing, supports the runtime
connection load balancing feature. It is available only when the
Pooling parameter is set to Session Pooling, and it can be set before
connection only. By default, when you select Session Pooling for
the pooling type, the RTConnBalancing value is true. </p>

